package RRHH_Modelo;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class RHH_PAGOS_QUINCENA {

    private int ID;
    private int ID_USUARIO;
    private int DEPARTAMENTO;
    private int REGIONAL;
    private int SUCURSAL;
    private int ID_CABECERA;
    private Double MONTO;
    private Conexion con = null;

    public RHH_PAGOS_QUINCENA(Conexion con) {
        this.con = con;
    }

    public RHH_PAGOS_QUINCENA(int ID, int ID_USUARIO, int DEPARTAMENTO, int REGIONAL, int SUCURSAL, Double MONTO, int ID_CABECERA) {
        this.ID = ID;
        this.ID_USUARIO = ID_USUARIO;
        this.DEPARTAMENTO = DEPARTAMENTO;
        this.REGIONAL = REGIONAL;
        this.SUCURSAL = SUCURSAL;
        this.MONTO = MONTO;
        this.ID_CABECERA=ID_CABECERA;
    }   

    public int Insertar() throws SQLException {
        String consulta = "insert into BROKER.RHH_PAGOS_QUINCENA (ID, ID_USUARIO, DEPARTAMENTO, REGIONAL, SUCURSAL,MONTO, ID_CABECERA) VALUES (" + ID + "," + ID_USUARIO + "," + DEPARTAMENTO + "," + REGIONAL + ","+SUCURSAL+"," + MONTO + ","+ID_CABECERA+")";
        con.EjecutarSentencia(consulta);
        consulta = "select BROKER.RHH_PAGOS_QUINCENA_SEQ.currval as ID from dual";
        ResultSet rs = con.EjecutarConsulta(consulta);
        rs.next();
        return rs.getInt("ID");
    }

    public boolean Modificar() throws SQLException {
        String consulta = "update BROKER.RHH_PAGOS_QUINCENA set ID = " + ID + ",ID_USUARIO = " + ID_USUARIO + ",DEPARTAMENTO = " + DEPARTAMENTO + ",REGIONAL = " + REGIONAL + ", SUCURSAL="+SUCURSAL+", MONTO = " + MONTO + ", ID_CABECERA="+ID_CABECERA+" where ID =  " + getID();
        con.EjecutarSentencia(consulta);
        return true;
    }

    public boolean EliminarXid() throws SQLException {
        String consulta = "delete from BROKER.RHH_PAGOS_QUINCENA where ID= " + getID();
        con.EjecutarSentencia(consulta);
        return true;
    }
    public boolean EliminarXcebecera(int id_cabecera) throws SQLException {
        String consulta = "delete from BROKER.RHH_PAGOS_QUINCENA where ID_CABECERA="+id_cabecera;
        con.EjecutarSentencia(consulta);
        return true;
    }

    public RHH_PAGOS_QUINCENA Buscar(int id) throws SQLException {
        String consulta = "select * from BROKER.RHH_PAGOS_QUINCENA where ID = " + getID();
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_PAGOS_QUINCENA> lista = Cargar(rs);
        if (lista.size() > 0) {
            return lista.get(0);
        } else {
            return null;
        }
    }
    
    public RHH_PAGOS_QUINCENA BuscarxCABEyus(int id_cabecera, int idusr) throws SQLException {
        String consulta = "select * from BROKER.RHH_PAGOS_QUINCENA where ID_CABECERA = "+id_cabecera+" and ID_USUARIO = "+idusr;
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_PAGOS_QUINCENA> lista = Cargar(rs);        
        if(lista.size()>0)
            return lista.get(0);
        else
            return null;
    }
    public List<RHH_PAGOS_QUINCENA> BuscarxCabe(int id_cabecera) throws SQLException {
        String consulta = "select * from BROKER.RHH_PAGOS_QUINCENA where ID_CABECERA = "+id_cabecera;
        ResultSet rs = con.EjecutarConsulta(consulta);
        return Cargar(rs);        
    }
    
    public List<RHH_PAGOS_QUINCENA> Todos() throws SQLException {
        String consulta = "select * from BROKER.RHH_PAGOS_QUINCENA";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_PAGOS_QUINCENA> lista = Cargar(rs);
        return lista;
    }

    public List<RHH_PAGOS_QUINCENA> Cargar(ResultSet rs) throws SQLException {
        List<RHH_PAGOS_QUINCENA> lista = new ArrayList<RHH_PAGOS_QUINCENA>();
        while (rs.next()) {
            RHH_PAGOS_QUINCENA objeto = new RHH_PAGOS_QUINCENA(con);
            objeto.setID(rs.getInt("ID"));
            objeto.setID_USUARIO(rs.getInt("ID_USUARIO"));   
            objeto.setDEPARTAMENTO(rs.getInt("DEPARTAMENTO"));
            objeto.setREGIONAL(rs.getInt("REGIONAL"));   
            objeto.setSUCURSAL(rs.getInt("SUCURSAL"));   
            objeto.setMONTO(rs.getDouble("MONTO"));
            objeto.setID_CABECERA(rs.getInt("ID_CABECERA"));
            lista.add(objeto);
        }
        return lista;
    }

    public int getID() {
        return ID;
    }

    public void setID(int ID) {
        this.ID = ID;
    }

    public int getID_USUARIO() {
        return ID_USUARIO;
    }

    public void setID_USUARIO(int ID_USUARIO) {
        this.ID_USUARIO = ID_USUARIO;
    }

    public int getDEPARTAMENTO() {
        return DEPARTAMENTO;
    }

    public void setDEPARTAMENTO(int DEPARTAMENTO) {
        this.DEPARTAMENTO = DEPARTAMENTO;
    }

    public int getREGIONAL() {
        return REGIONAL;
    }

    public void setREGIONAL(int REGIONAL) {
        this.REGIONAL = REGIONAL;
    }

    public int getSUCURSAL() {
        return SUCURSAL;
    }

    public void setSUCURSAL(int SUCURSAL) {
        this.SUCURSAL = SUCURSAL;
    }

    public int getID_CABECERA() {
        return ID_CABECERA;
    }

    public void setID_CABECERA(int ID_CABECERA) {
        this.ID_CABECERA = ID_CABECERA;
    }

    public Double getMONTO() {
        return MONTO;
    }

    public void setMONTO(Double MONTO) {
        this.MONTO = MONTO;
    }

    public Conexion getCon() {
        return con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }   
}
